package com.ruoyi.system.domain;

import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 主任务对象 main_task
 * 
 * @author zhaoyu
 * @date 2025-06-18
 */
public class MainTask extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 任务ID */
    private Long taskId;

    /** 任务名称 */
    @Excel(name = "任务名称")
    private String taskName;

    /** 任务描述 */
    @Excel(name = "任务描述")
    private String description;

    /** 优先级(0=低, 1=中, 2=高) */
    @Excel(name = "优先级(0=低, 1=中, 2=高)")
    private Integer priority;

    /** 截止时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "截止时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dueDate;

    /** 负责人ID */
    @Excel(name = "负责人ID")
    private Long assigneeId;

    /** 负责人姓名 */
    @Excel(name = "负责人姓名")
    private String assigneeName;

    /** 主任务状态(0=待接收, 1=进行中, 2=已完成, 3=异常) */
    @Excel(name = "主任务状态(0=待接收, 1=进行中, 2=已完成, 3=异常)")
    private Integer status;

    /** 删除标志(0=存在, 2=删除) */
    private String delFlag;

    /** 子任务信息 */
    private List<SubTask> subTaskList;

    public void setTaskId(Long taskId) 
    {
        this.taskId = taskId;
    }

    public Long getTaskId() 
    {
        return taskId;
    }

    public void setTaskName(String taskName) 
    {
        this.taskName = taskName;
    }

    public String getTaskName() 
    {
        return taskName;
    }

    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }

    public void setPriority(Integer priority) 
    {
        this.priority = priority;
    }

    public Integer getPriority() 
    {
        return priority;
    }

    public void setDueDate(Date dueDate) 
    {
        this.dueDate = dueDate;
    }

    public Date getDueDate() 
    {
        return dueDate;
    }

    public void setAssigneeId(Long assigneeId) 
    {
        this.assigneeId = assigneeId;
    }

    public Long getAssigneeId() 
    {
        return assigneeId;
    }

    public void setAssigneeName(String assigneeName) 
    {
        this.assigneeName = assigneeName;
    }

    public String getAssigneeName() 
    {
        return assigneeName;
    }

    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }

    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    public List<SubTask> getSubTaskList()
    {
        return subTaskList;
    }

    public void setSubTaskList(List<SubTask> subTaskList)
    {
        this.subTaskList = subTaskList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("taskId", getTaskId())
            .append("taskName", getTaskName())
            .append("description", getDescription())
            .append("priority", getPriority())
            .append("dueDate", getDueDate())
            .append("assigneeId", getAssigneeId())
            .append("assigneeName", getAssigneeName())
            .append("status", getStatus())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("subTaskList", getSubTaskList())
            .toString();
    }
}
